package cn.com.surker.production.dao;

import cn.com.surker.production.entity.ProductionIndentDispatch;
import cn.com.surker.production.entity.vo.DispatchVo;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 生产派单表 Mapper 接口
 * </p>
 *
 * @author admin
 * @since 2024-09-26
 */
public interface IndentDispatchDao extends BaseMapper<ProductionIndentDispatch> {

	/**
	 * 查询完整信息
	 *
	 * @param qw
	 * @return
	 */
	List<DispatchVo> selectFullList(@Param(Constants.WRAPPER) QueryWrapper<ProductionIndentDispatch> qw);

	/**
	 * 查询全部信息
	 *
	 *
	 * @param dbCode
	 * @param invoiceId
	 * @param status
	 * @return
	 */
	List<DispatchVo> queryFullByInvoice(String dbCode, Long invoiceId, Integer status);

	/**
	 * 查询发货单通过的派单的生产方量
	 *
	 * @param invoiceId
	 * @return
	 */
	Double queryInvProStere(Long invoiceId);

	/**
	 * 按小时查询小时生产统计方量
	 * @param startTime
	 * @param endTime
	 * @return hours 小时 proStere 生产量
	 */
	List<Map<String, Object>> findHoursProStere(String startTime, String endTime);

	/**
	 * 根据时间段查询生产量
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	Double queryTimeProStere(String startTime, String endTime);

	Double queryCloudTimeProStere(String dbCode, String startTime, String endTime);
	//查询发货方量
	Double queryCloudTimeSendStere(String dbCode, String startTime, String endTime);

	/**
	 * 云端根据时间段查询生产量
	 * @param dbCode
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	Double queryCloudTimeProStere(String dbCode,Long lineId, String startTime, String endTime);

}
